

const utils = {
    guid: function () {
        return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
            var r = Math.random() * 16 | 0,
                v = c == 'x' ? r : (r & 0x3 | 0x8);
            return v.toString(16);
        });
    },
    formatResult(asrRules, str) {
        // const keyword = ['报告', '事发地点位于', '事发原因', '报送至', '抄送至', '发生', '伤亡情况为', '报告人'];
        // 获取关键词未知
        let keyworkLoc = [];
        asrRules.forEach(k => {
            if (str.indexOf(k.asr_tag) >= 0) {
                keyworkLoc.push([k, str.indexOf(k.asr_tag), k.asr_tag.length]);
            }
        });
        // 排序
        keyworkLoc.sort((a, b) => a[1] - b[1]);
        //提取内容
        var strSlice = function (kl, ki) {
            var resultText = '';
            if (ki + 1 == keyworkLoc.length) {
                resultText = str.slice(kl[1] + kl[2]);
            } else {
                resultText = str.slice(kl[1] + kl[2], keyworkLoc[ki + 1][1]);
            }
            return resultText.trim().replace(/[，|。|！|？]$/g, '')
        }
        let res = {};
        keyworkLoc.forEach((kl, ki) => {
            let result = strSlice(kl, ki);
            if (kl[0].type == 'fltno') {
                // 如果是航班号，需要提取出单纯的航班号（英文大写+数字）
                result = result.match(/[A-Za-z0-9]+/g)[0].toUpperCase();
            }
            if (['receive_dept', 'copy_dept'].includes(kl[0].type)) {
                // 涉及部门的要转换成数组
                if (result.indexOf('和') >= 0) {
                    result = result.split('和');
                } else {
                    result = [result];
                }
            }
            res[kl[0].field] = result;
        });
        return res;
    }
}
export default utils
